package io.yuncheng.modules.sys.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;

import io.yuncheng.common.utils.DateUtils;
import io.yuncheng.common.utils.NumberUtil;
import lombok.Data;

/**
 * 算法日志次数时间汇总
 *
 * @author jared
 * @email 15721509625@163.com
 * @date 2020-10-29 18:50:09
 */
@Data
@TableName("sub_app_algorithm_log_collect_arith_time")
public class SubAppAlgorithmLogCollectArithTimeEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 *
	 */
	@TableId
	private Long id;
	/**
	 * 应用id
	 */
	private Long appId;
	/**
	 * 日志类型
	 */
	private String logType;
	/**
	 * 状态
	 */
	private String logStatus;
	/**
	 * 日志生成的时间
	 */
	private Date logDate;
	/**
	 * 执行时长(毫秒)
	 */
	private Long exeTime;
	/**
	 * 算法1使用的次数
	 */
	private Integer algorithmOne;
	/**
	 * 算法1使用的次数
	 */
	private Long algorithmTimeOne;
	/**
	 * 算法2使用的次数
	 */
	private Integer algorithmTwo;
	/**
	 * 算法2使用的次数
	 */
	private Long algorithmTimeTwo;
	/**
	 * 算法3使用的次数
	 */
	private Integer algorithmThree;
	/**
	 * 算法3使用的次数
	 */
	private Long algorithmTimeThree;
	/**
	 * 算法4使用的次数
	 */
	private Integer algorithmFour;
	/**
	 * 算法4使用的次数
	 */
	private Long algorithmTimeFour;
	/**
	 * 算法5使用的次数
	 */
	private Integer algorithmFive;
	/**
	 * 算法5使用的次数
	 */
	private Long algorithmTimeFive;
	/**
	 * 创建时间
	 */
	private Date createDate;

	/**
	 * 总的密码耗时
	 * @return
	 */
	public Long allAlgorithmTime(){
		Long all = 0L;
		NumberUtil.longAdd(all,getAlgorithmTimeOne());
		NumberUtil.longAdd(all,getAlgorithmTimeTwo());
		NumberUtil.longAdd(all,getAlgorithmTimeThree());
		NumberUtil.longAdd(all,getAlgorithmTimeFour());
		NumberUtil.longAdd(all,getAlgorithmTimeFive());
		return all;
	}

	/**
	 * 密码总次数
	 * @return
	 */
	public Integer allAlgorithmCount(){
		Integer all = 0;
		all = NumberUtil.integerAdd(all, getAlgorithmOne());
		all = NumberUtil.integerAdd(all,getAlgorithmTwo());
		all = NumberUtil.integerAdd(all,getAlgorithmThree());
		all = NumberUtil.integerAdd(all,getAlgorithmFour());
		all = NumberUtil.integerAdd(all,getAlgorithmFive());
		return all;
	}
	public String formatYearLogDate(){
		return DateUtils.formatYear(getLogDate());
	}
	public String formatMonthLogDate(){
		return DateUtils.formatMonth(getLogDate());
	}
}
